# -*-coding: Utf-8 -*-
# @File : create_table .py
# author: Chimengmeng
# blog_url : https://www.cnblogs.com/dream-ze/
# Time：2023/10/9

from sqlalchemy import create_engine
from settings import mysql_settings
from models.UserModel import User
from models.House_info_Model import House_info
from models.ProxyModel import Proxy
# Engine URL
ENGINE_URL = f"mysql+pymysql://{mysql_settings.MYSQL_USER}:{mysql_settings.MYSQL_PASSWORD}@{mysql_settings.MYSQL_HOST}:{mysql_settings.MYSQL_PORT}/{mysql_settings.MYSQL_DATABASE}?charset=utf8"
# ENGINE_URL = f"mysql+pymysql://root:1314521@127.0.0.1:3306/house_info?charset=utf8"
# 超过连接池大小外最多创建的连接
MAX_OVERFLOW = 0

# Engine 连接池大小
POOL_SIZE = 5

# Engine 池中没有线程最多等待的时间，否则报错
POOL_TIMEOUT = 30

# Engine 多久之后对线程池中的线程进行一次连接的回收（重置）
POOL_RECYCLE = -1

# 第一步：创建engine对象
engine = create_engine(
    url=ENGINE_URL,
    max_overflow=MAX_OVERFLOW,  # 超过连接池大小外最多创建的连接
    pool_size=POOL_SIZE,  # 连接池大小
    pool_timeout=POOL_TIMEOUT,  # 池中没有线程最多等待的时间，否则报错
    pool_recycle=POOL_RECYCLE  # 多久之后对线程池中的线程进行一次连接的回收（重置）
)

# 创建表，删除表
# 1 在数据库中创建表

House_info.metadata.create_all(engine)
# Proxy.metadata.create_all(engine)
# User.metadata.create_all(engine)

# 2 删除表
# Proxy.metadata.drop_all(engine)
# House_info.metadata.drop_all(engine)
# User.metadata.drop_all(engine)
